/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ui.components.modeltabele;

import domen.Fakultet;
import java.util.HashMap;
import javax.swing.table.AbstractTableModel;
import model.Storage;
import model.StorageBroker;

/**
 * klasa za prikaz tabele koja ce da sadrzi objekte Fakulteta iz hash mape
 * @author lukab_000
 */
public class FakultetModelTabele extends AbstractTableModel{

     HashMap<String,Object> mapa;
     StorageBroker sb;
     Fakultet f;

    public FakultetModelTabele() {
        f= new Fakultet();
        sb = new StorageBroker(f);
        
    }
     
    @Override
    public int getRowCount() {
        return sb.prikaziEntiteteIzMape().size();
    }

    @Override
    public int getColumnCount() {
//        return 5;
        return 2;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        mapa = sb.prikaziEntiteteIzMape();
        //pravi se prazan niz velicine hash mape
        Object[] nizObjekata = new Object[mapa.size()];
        // ubacujemo vrednosti kljuceva u niz
        mapa.keySet().toArray(nizObjekata);
        //uzimamo kljuc odredjenog reda
        String key = (String) nizObjekata[rowIndex];
        //uzimamo objekat fakulteta preko kljuca
        Fakultet f = (Fakultet) mapa.get(key);
        if (columnIndex == 0) {
            return f.getNaziv();
        }
        if (columnIndex == 1) {
            return f.getAdresa();
        }
//        if (columnIndex == 2) {
//            return f.getBrojTelefona();
//        }
//        if (columnIndex == 3) {
//            return f.getEmail();
//        }
//        if(columnIndex==4){
//        return f.getOpisFakulteta();
//        }
       
        return "N/a";
        
    }
    
     @Override
    public String getColumnName(int i) {
        switch (i) {
            case 0:

                return "Naziv";
            case 1:
                return "Adresa";
//            case 2:
//                return "Broj telefona";
//            case 3:
//                return "Email";
//            case 4:
//                return "Opis";
            default:
                return "Nedefinisana Kolona";
        }

    }
    
    
    @Override
    public boolean isCellEditable(int row, int column) {
        if (column == 0 || column == 1) {
            return true;
        }

        return false;
    }

//        @Override
//    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//        //pravi se prazan niz velicine hash mape
//        Object[] nizObjekata = new Object[mapa.size()];
//        // ubacujemo vrednosti kljuceva u niz
//        mapa.keySet().toArray(nizObjekata);
//        //uzimamo kljuc odredjenog reda
//        String key = (String) nizObjekata[rowIndex];
//        //uzimamo objekat fakulteta preko kljuca
//        Fakultet f = (Fakultet) mapa.get(key);
//        if (columnIndex==0) {
//            f.setNaziv(aValue.toString());
//        }
//        if (columnIndex==1) {
//            f.setAdresa(aValue.toString());
//        }
//        if (columnIndex==2) {
//           f.setBrojTelefona((Integer)aValue);
//        }
//        if (columnIndex==3) {
//            f.setEmail(aValue.toString());
//        }
//        if (columnIndex==4) {
//            f.setOpisFakulteta(aValue.toString());
//        }
//    }
//    
////     public void obrisiKorisnika(int selektovaniRed){
////        lk.remove(selektovaniRed);
////        fireTableDataChanged();
////    }
////    
//    public void dodajRed(){
//       fireTableDataChanged();
//    }
//    
    //TO DO ima jos metoda 
    
}
